package com.example.jpatest.entity;


import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.*;

import java.util.Set;
import javax.persistence.*;
import java.util.HashSet;

/**
 * 竞赛实体类
 * @author czx
 */

@Entity
@Data
@ToString(exclude = {"enterSet"})
@EqualsAndHashCode(exclude = {"enterSet"})
public class Competition {


    public static enum MatchLevel{

        /**
         * 国际
         */
        INTERNATIONAL,

        /**
         * 区域
         */
        NATIONAL,

        /**
         * 省级
         */
        PROVINCIAL
    }

    public static enum MatchType{
        /**
         * 政府
         */
        GOVERNMENT,

        /**
         * 社区
         */
        SOCIETY
    }
    /**
     * id
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    /**
     * 赛事名字
     */
    @Column(unique = true,nullable = false)
    private String name;

    /**
     * 举办年份
     */
    private String year;


    /**
     * 主办法
     */
    private String host;

    /**
     * 专业
     */
    private String speciality;

    /**
     * 比赛级别
     */
    @Enumerated(EnumType.STRING)
    private MatchLevel matchLevel;

    /**
     * 比赛类型
     */
    @Enumerated(EnumType.STRING)
    private MatchType matchType;

    /**
     * 比赛的报名
     */
    @OneToMany(cascade = {CascadeType.MERGE,CascadeType.PERSIST},mappedBy = "competition")
    @JsonIgnore
    private Set<Enter> enters = new HashSet<>();
}
